#include "RGB.h"

void RGB_Set_R(uint8_t state) {
    HAL_GPIO_WritePin(R_port, R_pin, state ? GPIO_PIN_SET : GPIO_PIN_RESET);
}
void RGB_Set_G(uint8_t state) {
    HAL_GPIO_WritePin(G_port, G_pin, state ? GPIO_PIN_SET : GPIO_PIN_RESET);
}
void RGB_Set_B(uint8_t state) {
    HAL_GPIO_WritePin(B_port, B_pin, state ? GPIO_PIN_SET : GPIO_PIN_RESET);
}
void RGB_Close_all(void) {
    HAL_GPIO_WritePin(R_port, R_pin, GPIO_PIN_RESET);
    HAL_GPIO_WritePin(G_port, G_pin, GPIO_PIN_RESET);
    HAL_GPIO_WritePin(B_port, B_pin, GPIO_PIN_RESET);
}

void RGB_Set(uint8_t R, uint8_t G, uint8_t B) {
    RGB_Set_R(R);
    RGB_Set_G(G);
    RGB_Set_B(B);
}

void RGB_proc(void) {
    static uint8_t state = 0;
    if (state == 0) {
        RGB_Set(1, 0, 0); // 红色
    } else if (state == 1) {
        RGB_Set(0, 1, 0); // 绿色
    } else if (state == 2) {
        RGB_Set(0, 0, 1); // 蓝色
    } else {
        RGB_Close_all(); // 关闭所有颜色
    }
    state = (state + 1) % 4; // 循环状态
}
